//#include <cstdio>          
//#include <iostream>
//#include <cstring>
//#include <queue>
//using namespace std;
//const int Max = 256;
//const int Maxnum = 199999999;
//struct T
//{
//    int v, c;
//}matrix[Max][Max];
//struct E
//{
//    int u, v, flag;
//}nod[Max];
//int lis[Max];
//bool mark[Max];
//int aflow, n, knum;
//int pfs(int src, int tar);
//int Maxflow(int src, int tar);
//
//int main()
//{
//int m;
//    while(scanf("%d", &m) == 1){
//        memset(matrix, 0, sizeof matrix);
//        scanf("%d", &n);
//        for(int i = 0; i < m; i++){
//        int u, v, tflow;
//            scanf("%d %d %d", &u, &v, &tflow);
//            matrix[u][v].c += tflow;
//        }    
//        int src = 0, tar = n-1;
//        printf("\n\n Fluxul maxim este: %d", Maxflow(src, tar));
//		return 0;
//    }
//}
//int Maxflow(int src, int tar)
//{   
//    int sum = 0;
//    
//    while(true){
//        aflow = Maxnum;  
//        if(!pfs(src, tar))break;
//        int tmp = tar;
//        while(tmp != 1){
//        int u = nod[tmp].u, v = nod[tmp].v;
//        if(nod[tmp].flag == 0)
//            aflow = min(matrix[u][v].c - matrix[u][v].v, aflow);
//            else aflow = min(matrix[u][v].v, aflow);
//            tmp = lis[tmp];
//        }
//        tmp = tar;
//        while(tmp != 1){
//        int u = nod[tmp].u, v = nod[tmp].v;
//        if(nod[tmp].flag == 0)
//            matrix[u][v].v += aflow;
//            else matrix[u][v].v -= aflow;
//            tmp = lis[tmp];
//        }
//        if(aflow != Maxnum)
//        sum += aflow;
//    }
//    return sum;
//}
//int pfs(int src, int tar)
//{
//    queue<int> q1;
//    int ans;
//    memset(lis, 0, sizeof lis); 
//    q1.push(src);
//    while(!q1.empty()){
//        ans = q1.front();
//        q1.pop();
//        for(int i = 0; i < n; i++){
//            if(matrix[ans][i].v < matrix[ans][i].c && lis[i] == 0){
//                q1.push(i);
//                lis[i] = ans;
//                nod[i].u = ans;
//                nod[i].v = i;
//                nod[i].flag = 0;
//                if(i == tar)return 1;
//            }
//            if(matrix[i][ans].v > 0 && lis[i] == 0){
//                q1.push(i);
//                lis[i] = ans;
//                nod[i].u = i;
//                nod[i].v = ans;
//                nod[i].flag = 1;
//                if(i == tar)return 1;
//            }
//        }
//    }
//    return 0;
//}